package zengqiang.day03.ad

fun main(args: Array<String>) {
    var d:Animal=Dog()
    var c:Animal=Cat()
//    c.test2()  报错，此处要区分多态，多态是父子都有相同方法

    //kotlin中的智能类型转换，即外层判断了类型，则内部可以直接使用，不需要再次转换
    if (d is Dog) {
        d.test1()
    }

    //下面是类似java的写法，即使判断了是cat类型还是要强转
    if (c is Cat) {
        var newc=c as Cat
        newc.test2()
    }
}
abstract class Animal
class Dog: Animal() {
    fun test1(){
        println("测试1")
    }
}
class Cat: Animal() {
    fun test2(){
        println("测试2")
    }
}